﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Xml;

namespace VoIPWeb.Uc
{
    public partial class RegisterUc : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == true)
            {
                // Thực hiện đăng nhập
                this.lbError.Text = "Not yet implement!";
                this.lbError.Visible = false;
                var v_str_user = "tionvoip";
                var v_str_user_pass = "samsung5568";
                var v_str_customer = Request.Form["txtUsername"];
                var v_str_password = Request.Form["txtPassword"];
                var v_str_repassword = Request.Form["txtRePassword"];
                //var v_str_email = Request.Form["txtEmailAddress"];
                var v_str_captcha = Request.Form["txtCaptcha"].ToLower();
                // Kiểm tra match pass
                if(!v_str_password.Equals(v_str_repassword))
                {
                    this.lbError.Text = "Password is not match!";
                    this.lbError.Visible = true;
                    return;
                }
                var v_str_code = Session["Captcha"] as string;

                if (v_str_captcha == v_str_code)
                {
                    // Nhập đúng captcha
                    // Services https://www.voipinfocenter.com/api/request.ashx
                    string v_str_url_api_create = String.Format("https://www.voipinfocenter.com/api/request.ashx?command=CreateCustomer&username={0}&password={1}&customer={2}&customerpassword={3}", v_str_user, v_str_user_pass, v_str_customer, v_str_password);
                    //string v_str_url_api_add_add_amount = String.Format("https://www.voipinfocenter.com/api/request.ashx?command=settransaction&username={0}&password={1}&customer={2}&amount={3}", v_str_user, v_str_user_pass, v_str_customer,v_str_ammount);
                    HttpWebRequest v_http_webrep = (HttpWebRequest)WebRequest.Create(v_str_url_api_create);
                    HttpWebResponse v_http_response = (HttpWebResponse)v_http_webrep.GetResponse();
                    XmlDocument v_xmldocument = new XmlDocument();
                    // Sau bước này, toàn bộ thông tin của file xml đầu ra đã được cho vào v_xmldocument
                    v_xmldocument.Load(v_http_response.GetResponseStream());

                    // Đọc dữ liệu để kiểm tra thông tin load đã thành công chưa?
                    XmlNodeList v_xml_list = v_xmldocument.SelectNodes("//Result");
                    // Nếu reset mật khẩu thành công
                    if (v_xml_list[0].InnerText.Equals("Success"))
                    {
                        //m_lbl_result.Text =string.Format("Register success. Your account login is: {0}*{1}. <br/>Go to <a href='/Login.aspx'>Login</a> form!",v_str_customer,v_str_user);
                        //this.m_lbl_result.Visible = true;
                        // Login luôn vào site
                        Session["Login"] = true;
                        Session["User"] = v_str_user;
                        Session["Customer"] = v_str_customer;
                        Session["Cpassword"] = v_str_password;
                        Response.Redirect("~/CustomerInfor.aspx");
                    }
                    else
                    {
                        XmlNodeList v_xml_list_fail = v_xmldocument.SelectNodes("//Reason");
                        if (v_xml_list_fail[0].InnerText.Contains("completely or partially"))
                        {
                            lbError.Text = "Your username is existed or your password is repeating or incremental like 'aaaa' or '1234' or 'abcd'";
                            this.lbError.Visible = true;
                        }
                        else
                        {
                            lbError.Text = v_xml_list_fail[0].InnerText;
                            this.lbError.Visible = true;
                        }
                    }
                }
                else
                {
                    this.lbError.Text = "Verified code is incorrect!";
                    this.lbError.Visible = true;
                }
            }
        }
    }
}